﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using CommonTools;
using MotionIoLib;
using log4net;
using BaseDll;
using System.Drawing;
using System.Xml.XmlConfiguration;
using System.Xml;
using System.Xml.Serialization;
namespace StationDemo
{
    public class Param_System
    {
        public static Param_System Instance = new Param_System();
        public ParamSet 机型 = new ParamSet()
        {
            _enuValType = ParamSetUnit.stringUnit,
            _strParamUnit = "机型",
            _strParamValMax = "机型",
            _strParamValMin = "机型",
            _strParamVal = "机型",
            _ParamRight = UserRight.Operator,
            _ParamClass = "综合",
            b_IsStartCheck = true,
        };
        public ParamSet 批次 = new ParamSet()
        {
            _enuValType = ParamSetUnit.stringUnit,
            _strParamUnit = "批次",
            _strParamValMax = "批次",
            _strParamValMin = "批次",
            _strParamVal = "批次",
            _ParamRight = UserRight.Operator,
            _ParamClass = "综合",
            b_IsStartCheck = true,
        };
        public ParamSet 操作者 = new ParamSet()
        {
            _enuValType = ParamSetUnit.stringUnit,
            _strParamUnit = "操作者",
            _strParamValMax = "操作者",
            _strParamValMin = "操作者",
            _strParamVal = "操作者",
            _ParamRight = UserRight.Operator,
            _ParamClass = "综合",
            b_IsStartCheck = true,
        };
        public ParamSet 设备编号 = new ParamSet()
        {
            _enuValType = ParamSetUnit.stringUnit,
            _strParamUnit = "设备编号",
            _strParamValMax = "设备编号",
            _strParamValMin = "设备编号",
            _strParamVal = "设备编号",
            _ParamRight = UserRight.Operator,
            _ParamClass = "综合",
            b_IsStartCheck = true,
        };
        public ParamSet 工站编号 = new ParamSet()
        {
            _enuValType = ParamSetUnit.stringUnit,
            _strParamUnit = "工站编号",
            _strParamValMax = "工站编号",
            _strParamValMin = "工站编号",
            _strParamVal = "工站编号",
            _ParamRight = UserRight.Operator,
            _ParamClass = "综合",
            b_IsStartCheck = true,
        };

        public ParamSet 是否开启Mes = new ParamSet()
        {
            _enuValType = ParamSetUnit.boolUnit,
            _strParamUnit = "是否开启Mes",
            _strParamValMax = true,
            _strParamValMin = false,
            _strParamVal = false,
            _ParamRight = UserRight.Operator,
            _ParamClass = "综合",
            b_IsStartCheck = true,
        };
        //public ParamSet 正常生产时长限制 = new ParamSet()
        //{
        //    _enuValType = ParamSetUnit.doubleUnit,
        //    _strParamUnit = "正常生产时长限制",
        //    _strParamValMax = 100,
        //    _strParamValMin = 0,
        //    _strParamVal = 40,
        //    _ParamRight = UserRight.Operator,
        //    _ParamClass = "综合",
        //    b_IsStartCheck = true,
        //};

        public ParamSet SN长度 = new ParamSet()
        {
            _enuValType = ParamSetUnit.intUnit,
            _strParamUnit = "SN长度",
            _strParamValMax = 100,
            _strParamValMin = 0,
            _strParamVal = 40,
            _ParamRight = UserRight.Operator,
            _ParamClass = "综合",
            b_IsStartCheck = true,
        };
        public ParamSet SN固定字符 = new ParamSet()
        {
            _enuValType = ParamSetUnit.stringUnit,
            _strParamUnit = "SN固定字符",
            _strParamValMax = "",
            _strParamValMin = "",
            _strParamVal = "",
            _ParamRight = UserRight.Operator,
            _ParamClass = "综合",
            b_IsStartCheck = true,
        };
        //public ParamSet 产品类型 = new ParamSet()
        //{
        //    _enuValType = ParamSetUnit.stringUnit,
        //    _strParamUnit = "产品类型",
        //    _strParamValMax = "大角度",
        //    _strParamValMin = "小角度",
        //    _strParamVal = "小角度",
        //    _ParamRight = UserRight.Operator,
        //    _ParamClass = "综合",
        //    b_IsStartCheck = true,
        //};

        public ParamSet b_是否烧录 = new ParamSet()
        {
            _enuValType = ParamSetUnit.boolUnit,
            _strParamUnit = "b_是否烧录",
            _strParamValMax = true,
            _strParamValMin = false,
            _strParamVal = true,
            _ParamRight = UserRight.Operator,
            _ParamClass = "综合",
            b_IsStartCheck = true,
        };


        public ParamSet 标定算法类型 = new ParamSet()
        {
            _enuValType = ParamSetUnit.intUnit,
            _strParamUnit = "标定算法类型",
            _strParamValMax = 5,
            _strParamValMin = 0,
            _strParamVal = 0,
            _ParamRight = UserRight.Operator,
            _ParamClass = "算法参数",
            b_IsStartCheck = true,
        };
        
        public ParamSet 启用A工位 = new ParamSet()
        {
            _enuValType = ParamSetUnit.boolUnit,
            _strParamUnit = "启用A工位",
            _strParamValMax = true,
            _strParamValMin = false,
            _strParamVal = true,
            _ParamRight = UserRight.Operator,
            _ParamClass = "烧录",
            b_IsStartCheck = true,
        };

        public ParamSet 启用B工位 = new ParamSet()
        {
            _enuValType = ParamSetUnit.boolUnit,
            _strParamUnit = "启用A工位",
            _strParamValMax = true,
            _strParamValMin = false,
            _strParamVal = true,
            _ParamRight = UserRight.Operator,
            _ParamClass = "烧录",
            b_IsStartCheck = true,
        };
        
        public ParamSet 点亮通讯超时时间 = new ParamSet()
        {
            _enuValType = ParamSetUnit.intUnit,
            _strParamUnit = "点亮通讯超时时间",
            _strParamValMax = 99999999,
            _strParamValMin = 0,
            _strParamVal = 60000,
            _ParamRight = UserRight.Operator,
            _ParamClass = "烧录",
            b_IsStartCheck = true,
        };
        
        public ParamSet 计算图像中心超时时间 = new ParamSet()
        {
            _enuValType = ParamSetUnit.intUnit,
            _strParamUnit = "计算图像中心超时时间",
            _strParamValMax = 99999999,
            _strParamValMin = 0,
            _strParamVal = 60000,
            _ParamRight = UserRight.Operator,
            _ParamClass = "烧录",
            b_IsStartCheck = true,
        };
        
        public ParamSet 标定计算通讯超时时间 = new ParamSet()
        {
            _enuValType = ParamSetUnit.intUnit,
            _strParamUnit = "标定计算通讯超时时间",
            _strParamValMax = 99999999,
            _strParamValMin = 0,
            _strParamVal = 60000,
            _ParamRight = UserRight.Operator,
            _ParamClass = "烧录",
            b_IsStartCheck = true,
        };

        public ParamSet 外接标定程序 = new ParamSet()
        {
            _enuValType = ParamSetUnit.boolUnit,
            _strParamUnit = "外接标定程序",
            _strParamValMax = true,
            _strParamValMin = false,
            _strParamVal = true,
            _ParamRight = UserRight.Operator,
            _ParamClass = "烧录",
            b_IsStartCheck = true,
        };
    }
    public enum IO_IN
    {
        急停1,
        急停2,
        安全光栅,
        NG料盘进料光栅,
        NG到位感应,
        顶升气缸下降到位,
        顶升气缸上升到位,
        产品压合气缸回退到位,
        产品压合气缸伸出到位,
        NG料仓打开,
        NG料仓关闭,
        双启动信号A,
        双启动信号B,
    }
    public enum IO_OUT
    {
        黄灯,
        绿灯,
        红灯,
        蓝灯,
        蜂鸣,
        NG料盘锁气缸上锁,
        指示灯绿,
        指示灯红,
        指示灯黄,
        双启动灯A,
        双启动灯B,

    }

    public enum Station
    {
        转盘站,
        上料站,
        标定站,
        治具A站,
        治具B站,
        图卡站,
    }

    public enum AlarmList
    {
        急停 = 0,
        安全门,
        气源检测,
        安全光栅,
        安全定义,
        扫二维码失败,
        MES进站失败,
        MES出站失败,
        通讯超时,
        点亮超时,
        取图超时,
        标定计算超时,
        烧录超时,
        产品SN校验错误,
        等到扫码超时,
        图像中心计算超时,
    }

    public enum SocketNGType
    {
        点亮,
        电流,
    }

    public enum ClibraNGType
    {
       标定,
    }

    public enum ServerCmd
    {
        点亮 = 0,
        取图 = 1,
        测试 = 2,
        烧录 = 3,
        停止取图 = 4,
        清标定数据 = 5,
        对心 = 6,
    }

}